package cursopoo.herramientas

import java.awt.Color
import java.awt.geom.Ellipse2D
import java.awt.geom.Rectangle2D

class EjerciciosIniciales {
    static String leerLineaDesdeLaConsola() {
        new BufferedReader(new InputStreamReader(System.in)).readLine()
    }

    static def leerNumeroDesdeLaConsola() {
        String linea =  leerLineaDesdeLaConsola()
        try {
            return Integer.parseInt(linea)
        }  catch (Exception e) {
            return -1
        }
    }
    static def longitud(String texto) { texto.length() }

    static def longitud(List lista) { lista.size() }

    static def longitud(String[] lista) { lista.length }

    static def aMinuscula(c) { c.toString().toLowerCase() }

    static def agregar(lista, elemento) { lista.add elemento }

    private static VentanaGrafica G = new VentanaGrafica()
    private static def colores = [
            amarillo: Color.YELLOW,
            negro: Color.BLACK,
            rojo: Color.RED,
            verde: Color.GREEN,
            azul: Color.BLUE
    ]

    private static swingColor(color) { colores[color] ?: Color.BLACK }

    static def dibujarCirculo(xCentro, yCentro, radio, String color) {
        G.agregar new FiguraColoreada(shape: new Ellipse2D.Double(xCentro-radio,yCentro-radio, radio * 2, radio * 2), color: swingColor(color))
    }

    static def dibujarRectangulo(x, y, ancho, alto, String color) {
        G.agregar new FiguraColoreada(shape: new Rectangle2D.Double(x, y, ancho, alto), color: swingColor(color))
    }

    static def palabras(String texto) {
        texto.split('\\s+|[\\.,\\-!;]+')
    }

    static def mostrarGrafico() {
        G.mostrar()
    }
}
